package com.eorchis.module.classuser.dao;

import java.sql.Blob;
import java.util.List;

import com.eorchis.components.attachment.ui.commond.AttachmentCommond;
import com.eorchis.core.basedao.dao.IDaoSupport;
import com.eorchis.module.basedata.domain.BaseData;
import com.eorchis.module.classuser.domain.AnnulUser;
import com.eorchis.module.classuser.domain.ClassUser;
import com.eorchis.module.classuser.domain.ClassUserCommond;
import com.eorchis.module.classuser.domain.ClassUserQueryBean;
import com.eorchis.module.classuser.domain.QueryClassUserBean;
import com.eorchis.module.classuser.domain.QueryTrainingHoursBean;
import com.eorchis.module.classuser.domain.RecordInfoBean;
import com.eorchis.module.classuser.domain.UserClassTypeHour;
import com.eorchis.module.classuser.ui.commond.ClassUserQueryCommond;
import com.eorchis.module.classuser.ui.commond.ClassUserValidCommond;
import com.eorchis.module.department.domain.Department;
import com.eorchis.module.trainingclass.domain.TrainingClassQueryBean;
import com.eorchis.module.trainingclass.ui.commond.TrainingClassQueryCommond;
import com.eorchis.module.user.domain.User;
import com.eorchis.module.user.ui.commond.UserInfoValidCommond;

/**
 * Title: IClassUserDao<br>
 * Description: 培训班用户关系数据接口<br>
 * Company: GoldGov<br>
 * Copyright @ 2012 GoldGov .All rights reserved.<br>
 * @createDate 2013-12-10
 * @version $Revision$
 */
@SuppressWarnings({ "rawtypes", "deprecation" })
public interface IClassUserDao extends IDaoSupport{
	/**
	 * 更新用户培训学时
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-11
	 */
	public void updateTrainingHours(ClassUserValidCommond commond)throws Exception;
	/**
	 * 更新用户学时的时候查询班级学时
	 * @param classUserId
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-1-17
	 */
	

	public Double queryTrainingHours(String classUserId) throws Exception;
	/**
	 * 查询单位treePath
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2012-12-10
	 */
	public List<Department> findDepTreePath(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 批量更新考勤情况
	 * @param queryCommond
	 * @throws Exception
	 * @author ShenPS
	 * @date 2015年1月11日
	 */
	public void updateAttendanceStateByClassId(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 查询未选人员列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2012-12-10
	 */
	public List<QueryClassUserBean> findNoSelectedUserList(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 根据班级学员ID查询班级信息
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-6-03
	 */
	public List<?> findClassInfo(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 批量更新考勤情况
	 * @param queryCommond
	 * @throws Exception
	 * @author GaoGQ
	 * @date 2015年3月26日
	 */
	public void updateAttendanceStateByClassIdAll(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 结班时统一更新用户培训学时
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-20
	 */
	public void updateTrainingHoursOnEnd(ClassUserValidCommond commond) throws Exception;
	
	/**
	 * 结班时统一更新用户培训学时
	 * @param commond
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2017-12-22
	 */
	public void updateTrainingHoursOnEnd2(ClassUserValidCommond commond) throws Exception;
	/**
	 * 填写学时页面添加学员时如果超过班级上限则扩大班级上限
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-23
	 */
	public void updateClassUserNum(String classId,int num) throws Exception;
	/**
	 * 单位上报学时
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-23
	 */
	public void updateReportedHoursState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 再次报名
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2013-12-23
	 */
	public void updateAuditingState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 处理发放给单位填写学时
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-25
	 */
	public void updateWriteHoursRank(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 发放给单位填写学时页面待添加学员列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-1-6
	 */
	public List<QueryClassUserBean> findListUserToDW(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 判断人员是否在班级
	 * @param classId,userId
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-1-3
	 */
	public boolean isOnClass(String classId,String userId) throws Exception;
	/**
	 * 单位填报市级项目查询班级列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-26
	 */
	public List<TrainingClassQueryBean> findTrainingClassList(TrainingClassQueryCommond queryCommond) throws Exception;
	/**
	 * 单位填报市级项目查询人员信息
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2013-12-30
	 */
	public List<QueryClassUserBean> findUserFillIn(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 更新审核状态
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Ningss
	 * @createDate 2013-12-30
	 */
	public void batchAuditing(ClassUserQueryCommond queryCommond)throws Exception;
	/**
	 * 统计--干部培训档案查询(别的逻辑不用调用此方法)
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Max
	 * @date 2014-01-08
	 */
	List<RecordInfoBean> findUserStudyRecordList(ClassUserQueryCommond queryCommond)
			throws Exception;
	/**
	 * 统计--干部培训档案查询,查询人员信息以及任职前后学时
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @date 2014-04-01
	 */
	public List<QueryClassUserBean> findUserInfoHoursStudyRecordList(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 更新班级上报状态
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2014-1-17
	 */
	public void updateReportState(ClassUserQueryCommond commond) throws Exception;
	/**
	 * 由classUserId查找班级id
	 * @param classUserId
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2014-1-21
	 */
	public QueryTrainingHoursBean queryClassId(String classUserId) throws Exception;
	/**
	 * 更新干教同步学时状态
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-2-25
	 */
	public void updateGjSyncHoursState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 更新培训班表向干教网同步学时同步状态
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-2-27
	 */
	public void updateGjSyncTrainingHourState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 更新培训班人员关系表向干教网同步人员状态
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-2-27
	 */
	public void updateGjSyncUserState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 更新培训班表向干教网同步人员同步状态
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-2-27
	 */
	public void updateGjSyncClassUserState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 查询学习档案
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @date 2014-03-26
	 */
	public List<RecordInfoBean> findStudyRecordList(ClassUserQueryCommond queryCommond)throws Exception;
	/**
	 * 查询当前班级可以报名的职级
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-5-8
	 */
	public String[] findClassUserRank(String classId) throws Exception;
	/**
	 * 查询当前单位所有人员，包括在当前单位任职的人员
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author HuangTF
	 * @createDate 2014-06-11
	 */
	public List<QueryClassUserBean> findAllUserListByDepId(ClassUserQueryCommond queryCommond)throws Exception;
	/**
	 * 统计--干部培训档案查询,查询人员信息以及任职前后学时
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Max
	 * @date 2014-06-26
	 */
	List<QueryClassUserBean> newFindUserInfoHoursStudyRecordList(
			ClassUserQueryCommond queryCommond) throws Exception;
	List<ClassUserQueryBean> findStudentNum(ClassUserQueryCommond qCommond)
			throws Exception;
	/**
	 * 培训班学员报名情况列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2015-1-4
	 */
	public List<QueryClassUserBean> getSelectedUserList(ClassUserQueryCommond queryCommond)throws Exception;
	/**
	 * 撤销报名
	 * @param queryCommond
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 * @author Xupp
	 * @createDate 2015-1-4
	 */
	
	
	/**
	 * 培训班学员报名情况列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author GAOGQ
	 * @createDate 2015-3-26
	 */
	public List<QueryClassUserBean> getSelectedUserListAttedence(ClassUserQueryCommond queryCommond)throws Exception;
	public int deleteSelectedUser(ClassUserQueryCommond queryCommond)throws Exception;
	/**
	 * 培训班单位报名情况列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Xupp
	 * @createDate 2015-1-8
	 */
	public List<QueryClassUserBean> getSelectedDepartmentList(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 培训班单位人员报名情况列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author Xupp
	 * @createDate 2015-1-8
	 */
	public List<QueryClassUserBean> getSelectedDepartmentUserList(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查看考勤情况
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author ShenPS
	 * @date 2015年1月11日
	 */
	public List<QueryClassUserBean> getClassAttendancerList(ClassUserQueryCommond queryCommond) throws Exception ;
	
	/**
	 * 批量更新考勤情况
	 * @param queryCommond
	 * @throws Exception
	 * @author ShenPS
	 * @date 2015年1月11日
	 */
	public void updateAttendanceState(ClassUserQueryCommond queryCommond) throws Exception;
	Long getCountSelectedUserList(ClassUserQueryCommond queryCommond)
			throws Exception;
	/**
	 * 人员报名待选列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author ShenPS
	 * @date 2015年1月23日
	 */
	public List<QueryClassUserBean> getToChooseUserList(
			ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 班级人员列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author ShenPS
	 * @date 2015年1月27日
	 */
	public List<QueryClassUserBean> findTrainingClassUserListNoPage(TrainingClassQueryCommond queryCommond) throws Exception;

	/**
	 * 按考勤状态查询班级人员列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2015-3-26
	 */
	public List<QueryClassUserBean> findClassUserListByAttendanceState(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询未报名人员
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-12-23
	 */
	public List<QueryClassUserBean> findClassUserListNoSignUp(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询班级考核人员
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2017-02-22
	 */
	public List<QueryClassUserBean> findClassUserListExaminationList(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 按考勤状态查询班级人员人数
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2015-3-26
	 */
	public Integer findClassUserNumByAttendanceState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 批量审核学员
	 * @param validCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @createDate 2016-01-06
	 */
	public void batchAuditingClassUser(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 班级人员列表(委托部委办班在线报名系统)
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @date 2016-1-7
	 */
	public List<QueryClassUserBean> findTrainingClassUserList(
			ClassUserQueryCommond queryCommond)throws Exception;
	/**
	 * 获取该部门下最大的编号(委托部委办班在线报名系统)
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author NingSS
	 * @date 2016-1-7
	 */
	public String getUserNum(ClassUserQueryCommond vCommond) throws Exception;
	
	/**
	 * 根据人员Id更新班级人员关系对象
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-21
	 */
	public void updateClassUserByUserId(User user,Integer auditingState,String classId) throws Exception;

	/**
	 * 作废人员(撤销报名用)
	 * @param userIds
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-22
	 */
	public void toVoidUserByUserId(String[] userIds) throws Exception;

	/**
	 * 查询当前部门下登录号序号最小的活动人员(报名用)
	 * @param userIds
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-22
	 */
	public User findMinLoginIdActiveUser(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询统一用户平台人员登录号&&userid(报名用)
	 * @param userIds
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-12-24
	 */
	public User findUserLoginIdUserId(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询统一用户平台人员信息(报名用)
	 * @param userId
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-12-24
	 */
	public ClassUserQueryCommond findUserByUserId(ClassUserQueryCommond queryCommond) throws Exception;

	/**
	 * 根据人员ID查询审核状态
	 * @param userId
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-26
	 */
	public Integer findAuditingStateByUserId(String userId) throws Exception;

	/**
	 * 更新人员审核状态
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-26
	 */
	public void updateAuditingStateByUserId(ClassUserQueryCommond queryCommond) throws Exception;

	/**
	 * 驳回撤销报名
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-26
	 */
	public void rejectDeleteUser(ClassUserValidCommond commond) throws Exception;

	/**
	 * 查看驳回原因
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author LongJZ
	 * @createDate 2016-1-26
	 */
	public QueryClassUserBean findRejectReason(ClassUserValidCommond commond) throws Exception;
	
	/**
	 * 报名管理导出
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author GUOLEI
	 * @createDate 2016-1-29
	 */
	public List<QueryClassUserBean> excelSelectedUserList(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 学员评价
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-2-23
	 */
	public void userAppraise(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 学员表现查看（地方管理员用）
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-2-23
	 */
	public List<QueryClassUserBean> userAppraiseShow(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 解除学员锁定
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-2-23
	 */
	public void openLockUserAppraise(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查看学员表现（单个学员）
	 * @param commond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-2-23
	 */
	public List<QueryClassUserBean> userAppraiseShowOne(ClassUserCommond queryCommond) throws Exception;
	
	/**
	 * 按考勤状态查询班级人员列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-9-18
	 */
	public List<QueryClassUserBean> findClassUserListByAttendanceState2(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 按考勤状态查询班级人员列表
	 * @param queryCommond
	 * @return
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-9-18
	 */
	public List<QueryClassUserBean> findClassUserListYesSignUp(ClassUserQueryCommond queryCommond)throws Exception;

	/**
	 * 已有用户更新考勤状态
	 * @author RongSL
	 * @Date 2016-09-18
	 * */
	public void updateUserAttendanceState(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 新增用户考勤
	 * @author RongSL
	 * @Date 2016-09-18
	 * */
	public void createUserAttendanceState(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 获得用户是否已入考勤表
	 * @author RongSL
	 * @Date 2016-09-18
	 * */
	public boolean getUserCount(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 查询用户
	 * @author RongSL
	 * @date 2017-01-09
	 * */
	public User getUser(String userid) throws Exception;
	
	/**
	 * 过滤已报名人员，防止因为网络延迟误点
	 * @author RongSl
	 * @Date 2017-1-11
	 * */
	public List<Integer> filterUser(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 根据userid获得ClassUser
	 * @Date 2017-1-12
	 * @author RongSL
	 * */
	public Object getClassUserByUserId(ClassUserQueryCommond queryCommond);
	
	/**
	 * 根据userid获得人员部门
	 * @Date 2017-1-12
	 * @author RongSL
	 * */
	public Object getUserDeptNameByUserId(UserInfoValidCommond userValidCommond);
	
	/**
	 * 根据userid获得人员部门
	 * @Date 2017-1-15
	 * @author LongJZ
	 * */
	public Object getUserLv1DeptNameByUserId(UserInfoValidCommond userValidCommond);
	
	/**
	 * 批量更新学员审核状态
	 * @param queryCommond
	 * @throws Exception
	 * @author RongSL
	 * @date 2016年01月13日
	 */
	public void updateUserAuditState(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 查询班级
	 * @param queryCommond
	 * @return
	 */
	public List<com.eorchis.module.trainingclass.querybean.TrainingClassQueryBean> findClassList(
			ClassUserQueryCommond queryCommond);
	
	/**
	 * 当用户所属部门与统一用户平台不同步时进行同步
	 * @author RongSL
	 * @date 2017-01-15
	 * */
	public void isSyncDepartment(String... string);
	
	/**
	 * 判断所选人员在本地是否存在
	 * */
	public boolean isFlagUser(String string);
	
	/**
	 * 判断所选人员在本地是否存在部门关联关系
	 * */
	public boolean isFlagDepartmentUser(String string);
	
	/**
	 * 根据人员ID获取部门ID
	 * */
	public String findDepartmentDepIdByUserId(String string);
	
	/**
	 * 导出班级人员列表
	 * @param queryCommond
	 * @return	List<QueryClassUserBean>
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2017-01-17
	 */
	public List<QueryClassUserBean> findClassUserListYesSignUpPerfect(ClassUserQueryCommond queryCommond) throws Exception ;
	/**
	 * 查询remark
	 * @param classId
	 * @param userId
	 * @return
	 */
	public ClassUser getUser(String classId, String userId);
	
	/**
	 * 更新人员信息
	 * @date 2017-02-06
	 * @author RongSL
	 * */
	public void updateUser(QueryClassUserBean qc);
	
	/**
	 * 新增匿名评估用户	（导出评估结果使用）
	 * @Date 2017-02-06
	 * @author RongSL
	 * */
	public void addAnonymous(QueryClassUserBean qc);
	
	/**
	 * 更细考核学时
	 * @Date 2017-02-22
	 * @author RongSL
	 * */
	public void updateTrainingClassUserH(ClassUserQueryCommond queryCommond);
	
	/**
	 * 更细考核学时们
	 * @Date 2017-09-25
	 * @author RongSL
	 * */
	public void updateTrainingClassUsersH(ClassUserQueryCommond queryCommond);
	
	/**
	 * 更细考核备注
	 * @Date 2017-02-22
	 * @author RongSL
	 * */
	public void updateTrainingClassUserB(ClassUserQueryCommond queryCommond);
	
	/**
	 * 更细考核结果
	 * @Date 2017-05-15
	 * @author RongSL
	 * */
	public void updateTrainingClassUserR(ClassUserQueryCommond queryCommond);
	
	/**
	 * 更细考核结果们
	 * @Date 2017-09-25
	 * @author RongSL
	 * */
	public void updateTrainingClassUsersR(ClassUserQueryCommond queryCommond);
	
	/**
	 * 更新考核状态
	 * @author RongSL
	 * @Date 2017-02-23
	 * */
	public void updateExaminationState(ClassUserQueryCommond queryCommond) throws Exception ;
	
	/**
	 * 判断人员是否已经存在
	 * @Date 2017-02-26
	 * @author RongSL
	 * */
	public boolean existenceClassUser(QueryClassUserBean qc);
	
	/**
	 * 报名通过情况
	 * @author RongSL
	 * 2017年5月15日
	 * */
	public String signSituation(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 查询当前班级下的总人数，合格人数，市管总数
	 * @author RongSL
	 * 2017年5月16日
	 * */
	public String findClassUserDetails(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 推送班级人员数据至档案系统
	 * @author RongSL
	 * 2017年5月16日
	 * */
	public void insertDATrainingClass(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * 过滤掉不存的帐号和已报名的帐号
	 * @author RongSL
	 * 2017年9月1日
	 * */
	public List filterSignUpUser(ClassUserQueryCommond queryCommond)throws Exception;
	
	/**
	 * @author RongSL
	 * 2017年9月9日
	 * 添加用户&部门关联
	 * */
	public boolean addTempUser(User u,Department d);
	
	/**
	 * @author RongSL
	 * 2017年9月9日
	 * 添加用户&部门关联
	 * */
	public boolean addUser(User u,Department d);
	
	/**
	 * @author RongSL
	 * 2017年9月9日
	 * 记录审计日志
	 * */
	public boolean auditUserLogAdd(String ... params);
	
	/**
	 * @author RongSL
	 * 2017年9月9日
	 * 记录审计日志
	 * */
	public boolean auditUserLogUpdate(QueryClassUserBean user,String ... params);
	
	/**
	 * @author RongSL
	 * 2017年9月15日
	 * 更新临时用户
	 * */
	public void updateTempUser(User u);
	
	/**
	 * @author RongSL
	 * 2017年9月15日
	 * 更新临时用户
	 * */
	public void updateUser(User u);
	
	/**
	 * @author RongSL
	 * 2017年9月15日
	 * 是否是市管单位
	 * */
	public boolean isShiguanOrJj(String userId);
	
	public List<QueryClassUserBean> findLearningExperienceList(ClassUserQueryCommond queryCommond)throws Exception;
	
	public void updateUserAttachment(String... strings) throws Exception;
	
	public void settingUserAttachments(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * @author RongSL
	 * 2017年9月22日
	 * 获得附件Blob
	 * */
	public Blob getAttachmentContent(AttachmentCommond attachmentCommond);
	
	/**
	 * @author RongSL
	 * 2017年9月27日
	 * */
	public void updateJJUserByUnified(String[] userIds);
	/**
	 * @author RongSL
	 * 2017年9月27日
	 * */
	public void updateJJUserByUnified(User us);
	public List<QueryClassUserBean> isFiveClass(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 从统一用户平台获得人员信息
	 * @author RongSL
	 * 2017年10月10日
	 * */
	public QueryClassUserBean getUserbyUnified(String userId) throws Exception;
	
	/**
	 * 查询报名人数
	 * @author RongSL
	 * 2017年10月25日
	 * */
	public Object findListUserCount(ClassUserQueryCommond queryCommond) throws Exception;
	
	public List<BaseData> findClassTypeList() throws Exception;
	public List<UserClassTypeHour> findYearHourListByType(ClassUserQueryCommond queryCommond,String dataCode) throws Exception;
	public ClassUserValidCommond findUserInfoById(String searchUserID) throws Exception;
	public Double findCreditHour(String searchUserID, Integer year) throws Exception;
	public Double findZxAndGrantHour(String searchUserID, Integer year) throws Exception;
	public Double findNtschoolHour(String searchUserID, Integer year) throws Exception;
	public List<UserClassTypeHour> findHisYearUserHour(String searchUserID) throws Exception;
	
	/**
	 * 我的参训情况
	 * @author RongSL
	 * 2017年12月5日
	 * */
	public List<QueryClassUserBean> myClassTrainingList(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 学员统计（管理员用）
	 * @author RongSL
	 * 2017年12月19日
	 * */
	public List<QueryClassUserBean> findUserStatisticsByAdmin(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询单个学员统计数据
	 * @author RongSL
	 * 2017年12月20日
	 * */
	public UserClassTypeHour findUserClassTypeHour(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询学员统计数据列表
	 * @author RongSL
	 * 2017年12月20日
	 * */
	public List<QueryClassUserBean> findUserClassTypeHourList(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询报名人员(归档数据)
	 * @param queryCommond
	 * @return List<QueryClassUserBean>
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-12-23
	 */
	public List<QueryClassUserBean> findNoClassUserListByPxarchives(ClassUserQueryCommond queryCommond) throws Exception;
	/**
	 * 查询报名人员(归档数据)
	 * @param queryCommond
	 * @return List<QueryClassUserBean>
	 * @throws Exception
	 * @author RongSL
	 * @createDate 2016-12-23
	 */
	public List<QueryClassUserBean> findClassUserListByPxarchives(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 根据姓名或身份证查询用户信息
	 * @author RongSL
	 * 2018年1月31日
	 * */
	public List findUserInfoByPaperNumOrUserName(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 查询没有在培训班中报名的学员，如果确实没有报名那么查出学员详情
	 * @param queryCommond
	 * @return List<QueryClassUserBean>
	 * @throws Exception
	 * @author RongSL
	 * 2017年12月29日
	 */
	public List<QueryClassUserBean> findClassUserNoSignUpDetails(ClassUserQueryCommond queryCommond) throws Exception;
	
	public List<QueryClassUserBean> findYearHourListByYear(ClassUserQueryCommond queryCommond) throws Exception;
	
	public List<QueryClassUserBean> findStatisticsUserByClass(ClassUserQueryCommond queryCommond) throws Exception;
	
	/**
	 * 保存撤销报名的用户id
	 * @param annulUser
	 * @throws Exception
	 */
	public void saveAnnulUser(String userId) throws Exception;
	
	
}
